package main

import (
	"obj/entry"
)

type myTreeNode struct {
	node *entry.Node
}

func (myNode *myTreeNode) postOrder() {
	if myNode == nil || myNode.node == nil {
		return
	}
	left := myTreeNode{myNode.node.Left}
	right := myTreeNode{myNode.node.Right}
	left.postOrder()
	right.postOrder()
	myNode.node.Print()

}
func main() {
	root := entry.CreateNode(2)
	root.Left = entry.CreateNode(3)
	root.Right = entry.CreateNode(4)
	// 中序遍历
	//root.Bianli()
	//后续遍历，通过组合别人的包的结构体
	(&myTreeNode{root}).postOrder()
}

// 值接收者 vs 指针接收者
/*
要改变内容必须使用指针接收者
结构过大也考虑使用指针接收者
一致性：如有指针接收者，最好都是指针接收者
> 值接收者 vs 指针接收者
  * 值接收者是go语言特有
  * 值/指针接收者均可接收值/指针
*/
